package com.htrq.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import org.hibernate.Session;

/**
 * �ܽӿڣ���װ���õ���ɾ�Ĳ��һЩ��ѯ����
 * @author WN
 * 
 * @param <T>
 */
public interface BaseDao<T> {
    /**
     * ��ȡ��ǰsession
     * @return
     */
    public Session getCurrentSession();
    /**
     * ���
     * @param t
     * @return 
     */
    public Serializable add(T t);
    /**
     * ����
     * @param t
     */
    public void update(T t);

    public void saveOrUpdate(T t);
    /**
     * ��ҳ��ѯ
     * @param page
     * @return
     */
    //List<T> queryByPage(Page page);
    /**
     * ���ID����ݿ��ȡʵ�������
     * @param id
     * @return
     */
    public T get(Serializable id);
    /**
     * ɾ��
     * @param t
     */
    public void delete(T t);
    /**
     * ����ɾ��
     * @param ts
     */
    public void delete(Collection<T> ts);
    /**
     * ��ѯ����ѯ
     * @param hql
     * @return
     */
    public List<T> findByHql(String hql);
    /**
     * �Ӳ����ѯ����ѯ
     * @param hql
     * @param values
     * @return
     */
    public List<T> findByHql(String hql, Object... values);
    /**
     * sql����ѯ
     * @param sql
     * @return
     */
    //public List<T> findByNativeSql(String sql);
    
    //public void excuteSql(String sql);
    
}

